package org.example.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * 通用响应工具类，支持成功、失败和自定义响应
 */
public class ResponseUtil {

    /**
     * 成功响应（包含数据）
     *
     * @param message 成功消息
     * @param data    返回的数据
     * @return 成功结果的 Map
     */
    public static Map<String, Object> success(String message, Object data) {
        Map<String, Object> response = new HashMap<>();
        response.put("status", "success");
        response.put("code", 200);
        response.put("message", message);
        response.put("data", data);
        return response;
    }

    /**
     * 成功响应（不包含数据）
     *
     * @param message 成功消息
     * @return 成功结果的 Map
     */
    public static Map<String, Object> success(String message) {
        return success(message, null);
    }

    /**
     * 失败响应
     *
     * @param code    错误代码
     * @param message 错误信息
     * @return 错误结果的 Map
     */
    public static Map<String, Object> error(int code, String message) {
        Map<String, Object> response = new HashMap<>();
        response.put("status", "error");
        response.put("code", code);
        response.put("message", message);
        response.put("data", null);
        return response;
    }

    /**
     * 自定义响应
     *
     * @param status  状态（success/error）
     * @param code    自定义代码
     * @param message 自定义消息
     * @param data    数据
     * @return 自定义结果的 Map
     */
    public static Map<String, Object> custom(String status, int code, String message, Object data) {
        Map<String, Object> response = new HashMap<>();
        response.put("status", status);
        response.put("code", code);
        response.put("message", message);
        response.put("data", data);
        return response;
    }
}
